package com.kapiclientsdk.service;

import com.kapiclientsdk.client.KApiClient;
import com.kapiclientsdk.exception.BusinessException;
import com.kapiclientsdk.model.request.BaseRequest;
import com.kapiclientsdk.model.request.IpInfoRequest;
import com.kapiclientsdk.model.request.RandomWallpaperRequest;
import com.kapiclientsdk.model.response.LoveResponse;
import com.kapiclientsdk.model.response.RandomWallpaperResponse;
import com.kapiclientsdk.model.response.ResultResponse;


public interface ApiService {

	/**
	 * 通用请求
	 */
	<O, T extends ResultResponse> T request(BaseRequest<O, T> request) throws BusinessException;

	/**
	 * 通用请求
	 */
	<O, T extends ResultResponse> T request(KApiClient kApiClient, BaseRequest<O, T> request) throws BusinessException;

	/**
	 * 随机壁纸
	 */
	RandomWallpaperResponse getRandomWallpaper(RandomWallpaperRequest request) throws BusinessException;

	/**
	 * 随机壁纸
	 */
	RandomWallpaperResponse getRandomWallpaper(KApiClient kApiClient, RandomWallpaperRequest request) throws BusinessException;

	/**
	 * 随机情话
	 */
	LoveResponse randomLoveTalk() throws BusinessException;

	/**
	 * 随机情话
	 */
	LoveResponse randomLoveTalk(KApiClient kApiClient) throws BusinessException;

	/**
	 * 获取ip信息
	 */
	ResultResponse getIpInfo(KApiClient kApiClient, IpInfoRequest request) throws BusinessException;

	/**
	 * 获取ip信息
	 */
	ResultResponse getIpInfo(IpInfoRequest request) throws BusinessException;

}
